CloudWatch Logs Insights で、 Lambda の実行回数とコールドスタート回数を調べる

CloudWatch Logs Insights で、 Lambda の実行回数とコールドスタート回数を調べる

Lambdaの実行回数とコールドスタート回数を調べてみました。CloudWatch Logs Insightsは便利ですね。
Clock Icon2024.12.24

CloudWatch Logs Insights で、Lambdaの実行回数とコールドスタート回数を調べてみました。

おすすめの方

  • CloudWatch Logs Insights で、Lambdaの実行回数とコールドスタート回数を調べたい方

Lambdaを適当に起動する

同じLambdaを何度か実行しておきます。今回は実験のため、次の起動を行いました。

  • LambdaA-deploy-1: 1回実行
  • LambdaA-deploy-2: 2回実行
  • LambdaA-deploy-3: 3回実行

CloudWatch Logs Insightsでクエリを実行する

REPORTのクエリを調べる

まずは、REPORTのクエリを調べて、上記の起動回数と一致していることを確認します、

fields @message
| filter @type == "REPORT"
| limit 100
| sort @timestamp asc

クエリの実行結果は下記です。合計数と「Init Duration」の記載件数は、期待通りですね。

  • 合計数: 6件
  • Init Durationの記載件数: 3件

01_lambda_logs

Lambdaの実行回数とコールドスタート回数を調べる

次のクエリを実行します。REPORTを抜き出したあと、そのままカウントしたり、「@initDuration」をカウントしたりしています。

filter @type == "REPORT"
| stats 
    count(*) as total_invocations,
    count(@initDuration > 0) as total_invocations_with_cold_start,
    (count(@initDuration > 0) * 100) / count(*) as cold_start_percentage,
    avg(@initDuration) as init_duration_avg_ms,
    max(@initDuration) as init_duration_max_ms,
    min(@initDuration) as init_duration_min_ms
| sort asc

クエリの実行結果は下記です。

項目名 意味 結果
total_invocations Lambdaの実行回数 6件
total_invocations_with_cold_start コールドスタートの回数 3件
cold_start_percentage コールドスタートの割合 50%
init_duration_avg_ms コールドスタートの時間(平均) 456.5133ms
init_duration_max_ms コールドスタートの時間(最大) 471.11ms
init_duration_min_ms コールドスタートの時間(最低) 446.47ms

11_cloudwatch_logs_insight

12_cloudwatch_logs_insight

おまけ: とある API の Lambda Authorizer を調べてみる

対象期間は7日間です。次の結果になりました。コールドスタートの割合は約15%でした。

21_cloudwatch_logs_insight

さいごに

CloudWatch Logs Insights で、Lambdaの実行回数とコールドスタート回数を調べてみました。調べたい方の参考になれば幸いです。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.